[MDM-BACKEND-010] Создать метод POST /api/products/card
Разработка высокопроизводительного эндпоинта выгрузки ИИ-паспорта продукта
NoteКраткая карточка задачи
- Репозиторий / Компонент:
backend-api(API Gateway). - Контракт метода:
GET /api/products/card. - Ссылка на Метод: Интерфейс экрана Cookbook и деконструкции текстов
- Статус: Готово к реализации
- Инструкция по шагам:
- На Шагах 1-2: Реализовать прием запроса от мобильного приложения при тапе пользователя на карточку продукта. Обеспечить сквозной проброс заголовка
X-Request-ID(trace_id). - Разработать Pydantic-валидацию Query-параметров. Обязательное поле:
product_nameтипа string. Реализовать приведение строки к нижнему регистру (lowercase) и очистку от лишних пробелов на уровне валидатора для точного сопоставления. - На Шаге 3: Направить параметризованный SQL-запрос напрямую в
PostgreSQL Fridge DB(в соответствии с манифестом, сущностьfood_elementsизолирована внутри контура INVENTORY). - Выполнить чтение:
SELECT chemical_card FROM fridge_db.food_elements WHERE LOWER(name) = LOWER(:product_name) AND status = 'READY' LIMIT 1. - На Шагах 4-5: При успешном нахождении записи, выдать статус
200 OKи вернуть кэшированную ИИ-структуру (БЖУ, макроэлементы, OCR-синонимы) в плоском JSON-формате на шлюз Nginx. - Если запись не найдена или её статус
PENDING, вернуть структурированный системный код ошибки (в соответствии с контуромerror-directory), напримерERR_MASTER_DATA_CARD_NOT_READYсо статусом404 Not Found.
- На Шагах 1-2: Реализовать прием запроса от мобильного приложения при тапе пользователя на карточку продукта. Обеспечить сквозной проброс заголовка